Technical Q&AHW 84 - Legacy Devices (20-March-2000)Q: I've been getting various reports from users about a problem with Open Firmware on almost all Macintoshes. It appears that Open Firmware is incorrectly assigning the same I/O range to several cards on the same PCI bus. Is this a known bug? A: Apple does not know of any reports concerning Open Firmware incorrectly assigning PCI I/O space. What you may be seeing is two or more PC-compatible "legacy" devices being placed into Macintosh PCI slots. A legacy device could be, for instance, a VGA or IDE controller with hard-coded address assignments previously used on an ISA bus. Since both of these controllers are hard wired to the same physical address in PCI I/O space, their address assignments conflict. There is no work around since both controllers expect to use the same address. This was acceptable when a PC had limited expansion capabilities, but must be taken into account when your personal computer has a PCI bus. For details see "PCI Bus Binding to IEEE Std 1275-1994 Standard for Boot (Initialization Configuration) Firmware Revision 2.1" Section 7, Legacy Devices. For your convenience here is that text: |
7. Legacy devices
"Legacy" VGA and IDE devices that are implemented on PCI will typically have the same "hard-decoded" addresses as they did on ISA. Such devices that have
For VGA devices (class-code = 0x000100 or 0x030000), the address ranges are: For IDE devices (class-code = 0x010100), the address ranges are: |
As you can see, both types of controller expect to be given a physical address range by Open Firmware. You can determine that your device is requesting a non relocatable address range by looking at the "reg" property in the node for your device. If Technical Q&As | Contents Previous Question To contact us, please use the Contact Us page. |